The present invention relates to analysis of computer programs. Program analysis plays an important role in a variety of software engineering processes, such as program slicing. Program slicing includes determining a portion of a computer program that functions the same for a given element in the computer program or the portion of the computer program. In other words, starting from a subset of a program's behavior, program slicing may reduce that program to a minimal form that still produces the behavior.